home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #1 / Amiga Plus 1995 #1.iso / fish-disketten / fish_841-850 / d846 / iobject / iobject.h < prev    next >
C/C++ Source or Header  |  1994-12-13  |  5KB  |  193 lines

  1. /* Include pour les objets              */
  2. /* (C) 1992,93 par Christophe PASSUELLO */
  3. /* Thu Feb  4 12:32:48 1993             */
  4.  
  5.  
  6. #ifndef EXEC_TYPES_H
  7. #include "exec/types.h"
  8. #endif
  9.  
  10. #ifndef INTUITION_INTUITION_H
  11. #define  INTUITION_PREFERENCES_H TRUE
  12. #include <intuition/intuition.h>
  13. #endif
  14.  
  15.  
  16. /* definition d'une boite */
  17. struct Box
  18. {
  19.   UWORD x, y;
  20.   UWORD w, h;
  21. };
  22.  
  23. #define COPY_BOX(dest,src) (*((struct Box *)dest))=(*((struct Box *)src))
  24.  
  25. /* Type de bordure pour Draw3DBox */
  26. #define BOX_1IN   0
  27. #define BOX_1OUT  1
  28. #define BOX_2IN   2
  29. #define BOX_2OUT  3
  30.  
  31. /* Classes d'objets */
  32. #define CLASS_CYCLE     1
  33. #define CLASS_SCROLLER  2
  34. #define CLASS_BUTTON    3
  35. #define CLASS_INTEGER   4
  36. #define CLASS_STRING    5
  37. #define CLASS_CHECK     6
  38.  
  39. /* IDCMP flags for the window *
  40. #define IDCMP_CYCLE     GADGETUP
  41. #define IDCMP_CHECK     GADGETDOWN
  42. #define IDCMP_STRING    GADGETDOWN|GADGETUP
  43. #define IDCMP_BUTTON    GADGETDOWN|GADGETUP
  44. #define IDCMP_STRING    GADGETUP
  45. #define IDCMP_INTEGER   GADGETUP
  46. #define IDCMP_SCROLLER  GADGETDOWN|GADGETUP|MOUSEMOVE
  47.  
  48. struct NewObject
  49. {
  50.   UWORD  LeftEdge, TopEdge;     /* position de l'objet */
  51.   UWORD  Width, Height;         /* taille de l'objet */
  52.   UWORD  Flags;                 /* Flags pour toutes les classes d'objet */
  53.   UWORD  ClassFlags;            /* Flags specialise pour chaque classe */
  54.   STRPTR LabelText;             /* Label de l'objet */
  55.   struct TextAttr *Font;        /* Fonte pour le label et le texte de l'objet */
  56. };
  57.  
  58.  
  59. /* Flags pour NewObject.Flags */
  60. #define LABEL_MASK    0x007f    /* position du label par rapport à l'objet */
  61. #define LABEL_ABOVE   0x0001    /* au dessus */
  62. #define LABEL_BELOW   0x0002    /* en dessous */
  63. #define LABEL_RIGHT   0x0004    /* a droite */
  64. #define LABEL_LEFT    0x0008    /* a gauche */
  65. #define LABEL_INSIDE  0x0010    /* a l'interieur */
  66. #define LABEL_HOT_KEY 0x0020    /* Souligne le caractères suivant le '_' */
  67. #define LABEL_PEN2    0x0040    /* Label ecrit avec la couleur Pen2 */
  68.  
  69. #define OBJ_DISABLED  0x0080    /* Object ghosted (Off) */
  70.  
  71.  
  72. struct NewCycle
  73. {
  74.   struct NewObject NewObj;
  75.   STRPTR *TextArray;
  76. };
  77.  
  78.  
  79. struct NewButton
  80. {
  81.   struct NewObject NewObj;
  82. };
  83.  
  84. /* ClassFlags pour les boutons */
  85. #define BT_TOGGLE      0x0001
  86. #define BT_SELECTED    0x0002
  87.  
  88. struct NewScroller
  89. {
  90.   struct NewObject NewObj;
  91.   UWORD Pos;
  92.   UWORD CurSize;
  93.   UWORD MaxSize;
  94. };
  95.  
  96. /* ClassFlags pour les scrollers */
  97. #define SC_VERTICAL   0x0001     /* Scroller vertical */
  98. #define SC_NOMOUSE    0x0002     /* pas de FOLLOWMOUSE */
  99.  
  100.  
  101. struct NewCheck
  102. {
  103.   struct NewObject NewObj;
  104. };
  105.  
  106. /* ClassFlags pour les checks */
  107. #define CK_CHECKED    0x0001    /* le check est coche */
  108.  
  109.  
  110. struct NewString
  111. {
  112.   struct NewObject NewObj;
  113.   STRPTR Text;
  114.   UWORD  MaxLength;
  115. };
  116.  
  117.  
  118. struct NewInteger
  119. {
  120.   struct NewObject NewObj;
  121. };
  122.  
  123. /* ClassFlags pour les integer et les string */
  124. #define STR_SINGLEBORD  0x0001
  125. #define STR_RIGHT       0x0002
  126. #define STR_CENTER      0x0004
  127.  
  128.  
  129. struct NewTextArea
  130. {
  131.   UWORD  LeftEdge, TopEdge;
  132.   UWORD  Width, Height;
  133.   UWORD  Flags;
  134.   UWORD  ClassFlags;
  135.   STRPTR LabelText;
  136.   struct TextAttr *Font;
  137.   UBYTE  FrontPen, BackPen;
  138.   UBYTE  InterLine;
  139.   UBYTE  WrMask;
  140. };
  141.  
  142. /* flags pour NewTextArea.Flags */
  143. #define LABEL_ABOVE   0x0001    /* au dessus */
  144. #define LABEL_BELOW   0x0002    /* en dessous */
  145. #define LABEL_RIGHT   0x0004    /* a droite */
  146. #define LABEL_LEFT    0x0008    /* a gauche */
  147. #define LABEL_PEN2    0x0040    /* Label ecrit avec la couleur Pen2 */
  148.  
  149. /* flags pour NewTextArea.ClassFlags */
  150. #define TAF_SMOOTH_SCROLL 1
  151. #define TAF_CLIP_TEXT     2
  152.  
  153. /* methodes generiques pour les Object */
  154. CPTR FindObjectMsg(struct IntuiMessage *);
  155. UWORD GetObjectID(CPTR);
  156. UBYTE GetHotKey(CPTR);
  157.  
  158. /* prototypes */
  159. VOID SetIObjectColors(UBYTE, UBYTE, UBYTE, UBYTE, UBYTE);
  160. VOID Draw3DBox(struct Box *, struct RastPort *, UWORD);
  161. VOID AdjustBox(struct Box *, BOOL);
  162. VOID ExitEasyGadget();
  163. BOOL InitEasyGadget();
  164.  
  165. /* methodes pour les objets */
  166. CPTR CreateCycle(struct NewCycle *, ULONG);
  167. CPTR CreateButton(struct NewButton *, ULONG);
  168. CPTR CreateCheck(struct NewCheck *, ULONG);
  169. CPTR CreateScroller(struct NewScroller *, ULONG);
  170. CPTR CreateInteger(struct NewInteger *, ULONG);
  171. CPTR CreateString(struct NewString *, ULONG);
  172.  
  173. VOID FreeObject(CPTR);
  174. BOOL SendMsgToObject(CPTR, struct IntuiMessage *);
  175. VOID AddObjectToWindow(CPTR, struct Window *, struct Requester *);
  176. VOID RemoveObjectFromWindow(CPTR);
  177. VOID DisplayObject(CPTR);
  178. VOID EraseObject(CPTR);
  179. VOID ModifyObject(CPTR, ...);
  180. ULONG ObjectValue(CPTR);
  181. /*CPTR CreateObject(struct NewObject *, UWORD, UWORD);*/
  182. VOID ActivateObject(CPTR);
  183. VOID OnObject(CPTR);
  184. VOID OffObject(CPTR);
  185.  
  186. /* Prototypes pour les TextArea */
  187. CPTR CreateTextArea(struct NewTextArea *, struct RastPort *);
  188. VOID FreeTextArea(CPTR);
  189. VOID SetTextAreaPen(CPTR, UBYTE, UBYTE);
  190. VOID TAPuts(CPTR,char *);
  191. VOID TAPrint(CPTR,char *);
  192. VOID TAPrintf(CPTR,char *, ...);
  193.